package com.me.permission.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * Mybatis 插件：在 PO 上标注 映射数据权限的属性
 *
 * @author ME
 */
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface PermissionColumns {

    /**
     * 必须是数据库字段名。表明当前 PO 所映射的表中哪个字段是用来配置数据权限的。 <p></p>
     *
     * 某些情况下，一个实体可能有多个维度的数据权限，所以类型定义为数组
     *
     * @return
     */
    String[] value() default {};

    /**
     * 数据库表名
     * @return
     */
    String tableName();

}
